
//图片处理工具
let _image = {

  //压缩
  _compress : function (base64, scale, quality, callback) {
    let newImage = new Image();
    newImage.src = base64;
    newImage.setAttribute("crossOrigin", 'Anonymous');	//url为外域时需要
    let imgWidth, imgHeight;
    newImage.onload = function () {
      imgWidth = this.width;
      imgHeight = this.height;
      let canvas = document.createElement("canvas");
      let ctx = canvas.getContext("2d");

      //控制压缩比例大小
      scale = (scale < 0 || scale > 1) ? 1 : scale;

      canvas.width = imgWidth * scale;
      canvas.height = imgHeight * scale;

      ctx.clearRect(0, 0, canvas.width, canvas.height);
      ctx.drawImage(this, 0, 0, canvas.width, canvas.height);
      let base64 = canvas.toDataURL("image/jpeg", quality); //压缩语句
      // 如想确保图片压缩到自己想要的尺寸,如要求在50-150kb之间，请加以下语句，quality初始值根据情况自定
      // while (base64.length / 1024 > 150) {
      // 	quality -= 0.01;
      // 	base64 = canvas.toDataURL("image/jpeg", quality);
      // }
      // 防止最后一次压缩低于最低尺寸，只要quality递减合理，无需考虑
      // while (base64.length / 1024 < 50) {
      // 	quality += 0.001;
      // 	base64 = canvas.toDataURL("image/jpeg", quality);
      // }
      callback(base64);//必须通过回调函数返回，否则无法及时拿到该值
    }
  }
};


//导出
export default _image;
